﻿(function (a) {
    a.fn.slide = function (b) {
        return a.fn.slide.defaults = {
            type: "slide",
            effect: "fade",
            autoPlay: !1,
            delayTime: 500,
            interTime: 2500,
            triggerTime: 150,
            defaultIndex: 0,
            titCell: ".hd li",
            mainCell: ".bd",
            targetCell: null,
            trigger: "mouseover",
            scroll: 1,
            vis: 1,
            titOnClassName: "on",
            autoPage: !1,
            prevCell: ".prev",
            nextCell: ".next",
            pageStateCell: ".pageState",
            opp: !1,
            pnLoop: !0,
            easing: "swing",
            startFun: null,
            endFun: null,
            switchLoad: null,
            playStateCell: ".playState",
            mouseOverStop: !0,
            defaultPlay: !0,
            returnDefault: !1
        },
        this.each(function () {
            var c = a.extend({}, a.fn.slide.defaults, b)
              , d = a(this)
              , e = c.effect
              , f = a(c.prevCell, d)
              , g = a(c.nextCell, d)
              , h = a(c.pageStateCell, d)
              , i = a(c.playStateCell, d)
              , j = a(c.titCell, d)
              , k = j.size()
              , l = a(c.mainCell, d)
              , m = l.children().size()
              , n = c.switchLoad
              , o = a(c.targetCell, d)
              , p = parseInt(c.defaultIndex)
              , q = parseInt(c.delayTime)
              , r = parseInt(c.interTime);
            parseInt(c.triggerTime);
            var P, t = parseInt(c.scroll), u = parseInt(c.vis), v = "false" == c.autoPlay || 0 == c.autoPlay ? !1 : !0, w = "false" == c.opp || 0 == c.opp ? !1 : !0, x = "false" == c.autoPage || 0 == c.autoPage ? !1 : !0, y = "false" == c.pnLoop || 0 == c.pnLoop ? !1 : !0, z = "false" == c.mouseOverStop || 0 == c.mouseOverStop ? !1 : !0, A = "false" == c.defaultPlay || 0 == c.defaultPlay ? !1 : !0, B = "false" == c.returnDefault || 0 == c.returnDefault ? !1 : !0, C = 0, D = 0, E = 0, F = 0, G = c.easing, H = null, I = null, J = null, K = c.titOnClassName, L = j.index(d.find("." + K)), M = p = defaultIndex = -1 == L ? p : L, N = p, O = m >= u ? 0 != m % t ? m % t : t : 0, Q = "leftMarquee" == e || "topMarquee" == e ? !0 : !1, R = function () {
                a.isFunction(c.startFun) && c.startFun(p, k, d, a(c.titCell, d), l, o, f, g)
            }
            , S = function () {
                a.isFunction(c.endFun) && c.endFun(p, k, d, a(c.titCell, d), l, o, f, g)
            }
            , T = function () {
                j.removeClass(K),
                A && j.eq(defaultIndex).addClass(K)
            }
            ;
            if ("menu" == c.type)
                return A && j.removeClass(K).eq(p).addClass(K),
                j.hover(function () {
                    P = a(this).find(c.targetCell);
                    var b = j.index(a(this));
                    I = setTimeout(function () {
                        switch (p = b,
                        j.removeClass(K).eq(p).addClass(K),
                        R(),
                        e) {
                            case "fade":
                                P.stop(!0, !0).animate({
                                    opacity: "show"
                                }, q, G, S);
                                break;
                            case "slideDown":
                                P.stop(!0, !0).animate({
                                    height: "show"
                                }, q, G, S)
                        }
                    }
                    , c.triggerTime)
                }
                , function () {
                    switch (clearTimeout(I),
                    e) {
                        case "fade":
                            P.animate({
                                opacity: "hide"
                            }, q, G);
                            break;
                        case "slideDown":
                            P.animate({
                                height: "hide"
                            }, q, G)
                    }
                }
                ),
                B && d.hover(function () {
                    clearTimeout(J)
                }
                , function () {
                    J = setTimeout(T, q)
                }
                ),
                void 0;
            if (0 == k && (k = m),
            Q && (k = 2),
            x) {
                if (m >= u)
                    if ("leftLoop" == e || "topLoop" == e)
                        k = 0 != m % t ? (0 ^ m / t) + 1 : m / t;
                    else {
                        var U = m - u;
                        k = 1 + parseInt(0 != U % t ? U / t + 1 : U / t),
                        0 >= k && (k = 1)
                    }
                else
                    k = 1;
                j.html("");
                var V = "";
                if (1 == c.autoPage || "true" == c.autoPage)
                    for (var W = 0; k > W; W++)
                        V += "<li>" + (W + 1) + "</li>";
                else
                    for (var W = 0; k > W; W++)
                        V += c.autoPage.replace("$", W + 1);
                j.html(V);
                var j = j.children()
            }
            if (m >= u) {
                l.children().each(function () {
                    a(this).width() > E && (E = a(this).width(),
                    D = a(this).outerWidth(!0)),
                    a(this).height() > F && (F = a(this).height(),
                    C = a(this).outerHeight(!0))
                }
                );
                var X = l.children()
                  , Y = function () {
                      for (var a = 0; u > a; a++)
                          X.eq(a).clone().addClass("clone").appendTo(l);
                      for (var a = 0; O > a; a++)
                          X.eq(m - a - 1).clone().addClass("clone").prependTo(l)
                  }
                ;
                switch (e) {
                    case "fold":
                        l.css({
                            position: "relative",
                            width: D,
                            height: C
                        }).children().css({
                            position: "absolute",
                            width: E,
                            left: 0,
                            top: 0,
                            display: "none"
                        });
                        break;
                    case "top":
                        l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + u * C + 'px"></div>').css({
                            top: -(p * t) * C,
                            position: "relative",
                            padding: "0",
                            margin: "0"
                        }).children().css({
                            height: F
                        });
                        break;
                    case "left":
                        l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + u * D + 'px"></div>').css({
                            width: m * D,
                            left: -(p * t) * D,
                            position: "relative",
                            overflow: "hidden",
                            padding: "0",
                            margin: "0"
                        }).children().css({
                            "float": "left",
                            width: E
                        });
                        break;
                    case "leftLoop":
                    case "leftMarquee":
                        Y(),
                        l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + u * D + 'px"></div>').css({
                            width: (m + u + O) * D,
                            position: "relative",
                            overflow: "hidden",
                            padding: "0",
                            margin: "0",
                            left: -(O + p * t) * D
                        }).children().css({
                            "float": "left",
                            width: E
                        });
                        break;
                    case "topLoop":
                    case "topMarquee":
                        Y(),
                        l.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + u * C + 'px"></div>').css({
                            height: (m + u + O) * C,
                            position: "relative",
                            padding: "0",
                            margin: "0",
                            top: -(O + p * t) * C
                        }).children().css({
                            height: F
                        })
                }
            }
            var Z = function (a) {
                var b = a * t;
                return a == k ? b = m : -1 == a && 0 != m % t && (b = -m % t),
                b
            }
              , $ = function (b) {
                  var c = function (c) {
                      for (var d = c; u + c > d; d++)
                          b.eq(d).find("img[" + n + "]").each(function () {
                              var b = a(this);
                              if (b.attr("src", b.attr(n)).removeAttr(n),
                              l.find(".clone")[0])
                                  for (var c = l.children(), d = 0; c.size() > d; d++)
                                      c.eq(d).find("img[" + n + "]").each(function () {
                                          a(this).attr(n) == b.attr("src") && a(this).attr("src", a(this).attr(n)).removeAttr(n)
                                      }
                                      )
                          }
                          )
                  }
                  ;
                  switch (e) {
                      case "fade":
                      case "fold":
                      case "top":
                      case "left":
                      case "slideDown":
                          c(p * t);
                          break;
                      case "leftLoop":
                      case "topLoop":
                          c(O + Z(N));
                          break;
                      case "leftMarquee":
                      case "topMarquee":
                          var d = "leftMarquee" == e ? l.css("left").replace("px", "") : l.css("top").replace("px", "")
                            , f = "leftMarquee" == e ? D : C
                            , g = O;
                          if (0 != d % f) {
                              var h = Math.abs(0 ^ d / f);
                              g = 1 == p ? O + h : O + h - 1
                          }
                          c(g)
                  }
              }
              , _ = function (a) {
                  if (!A || M != p || a || Q) {
                      if (Q ? p >= 1 ? p = 1 : 0 >= p && (p = 0) : (N = p,
                      p >= k ? p = 0 : 0 > p && (p = k - 1)),
                      R(),
                      null != n && $(l.children()),
                      o[0] && (P = o.eq(p),
                      null != n && $(o),
                      "slideDown" == e ? (o.not(P).stop(!0, !0).slideUp(q),
                      P.slideDown(q, G, function () {
                          l[0] || S()
                      }
                      )) : (o.not(P).stop(!0, !0).hide(),
                      P.animate({
                          opacity: "show"
                      }, q, function () {
                          l[0] || S()
                      }
                      ))),
                      m >= u)
                          switch (e) {
                              case "fade":
                                  l.children().stop(!0, !0).eq(p).animate({
                                      opacity: "show"
                                  }, q, G, function () {
                                      S()
                                  }
                                  ).siblings().hide();
                                  break;
                              case "fold":
                                  l.children().stop(!0, !0).eq(p).animate({
                                      opacity: "show"
                                  }, q, G, function () {
                                      S()
                                  }
                                  ).siblings().animate({
                                      opacity: "hide"
                                  }, q, G);
                                  break;
                              case "top":
                                  l.stop(!0, !1).animate({
                                      top: -p * t * C
                                  }, q, G, function () {
                                      S()
                                  }
                                  );
                                  break;
                              case "left":
                                  l.stop(!0, !1).animate({
                                      left: -p * t * D
                                  }, q, G, function () {
                                      S()
                                  }
                                  );
                                  break;
                              case "leftLoop":
                                  var b = N;
                                  l.stop(!0, !0).animate({
                                      left: -(Z(N) + O) * D
                                  }, q, G, function () {
                                      -1 >= b ? l.css("left", -(O + (k - 1) * t) * D) : b >= k && l.css("left", -O * D),
                                      S()
                                  }
                                  );
                                  break;
                              case "topLoop":
                                  var b = N;
                                  l.stop(!0, !0).animate({
                                      top: -(Z(N) + O) * C
                                  }, q, G, function () {
                                      -1 >= b ? l.css("top", -(O + (k - 1) * t) * C) : b >= k && l.css("top", -O * C),
                                      S()
                                  }
                                  );
                                  break;
                              case "leftMarquee":
                                  var c = l.css("left").replace("px", "");
                                  0 == p ? l.animate({
                                      left: ++c
                                  }, 0, function () {
                                      l.css("left").replace("px", "") >= 0 && l.css("left", -m * D)
                                  }
                                  ) : l.animate({
                                      left: --c
                                  }, 0, function () {
                                      -(m + O) * D >= l.css("left").replace("px", "") && l.css("left", -O * D)
                                  }
                                  );
                                  break;
                              case "topMarquee":
                                  var d = l.css("top").replace("px", "");
                                  0 == p ? l.animate({
                                      top: ++d
                                  }, 0, function () {
                                      l.css("top").replace("px", "") >= 0 && l.css("top", -m * C)
                                  }
                                  ) : l.animate({
                                      top: --d
                                  }, 0, function () {
                                      -(m + O) * C >= l.css("top").replace("px", "") && l.css("top", -O * C)
                                  }
                                  )
                          }
                      j.removeClass(K).eq(p).addClass(K),
                      M = p,
                      y || (g.removeClass("nextStop"),
                      f.removeClass("prevStop"),
                      0 == p && f.addClass("prevStop"),
                      p == k - 1 && g.addClass("nextStop")),
                      h.html("<span>" + (p + 1) + "</span>/" + k)
                  }
              }
            ;
            A && _(!0),
            B && d.hover(function () {
                clearTimeout(J)
            }
            , function () {
                J = setTimeout(function () {
                    p = defaultIndex,
                    A ? _() : "slideDown" == e ? P.slideUp(q, T) : P.animate({
                        opacity: "hide"
                    }, q, T),
                    M = p
                }
                , 300)
            }
            );
            var ab = function (a) {
                H = setInterval(function () {
                    w ? p-- : p++,
                    _()
                }
                , a ? a : r)
            }
              , bb = function (a) {
                  H = setInterval(_, a ? a : r)
              }
              , cb = function () {
                  z || (clearInterval(H),
                  ab())
              }
              , db = function () {
                  (y || p != k - 1) && (p++,
                  _(),
                  Q || cb())
              }
              , eb = function () {
                  (y || 0 != p) && (p--,
                  _(),
                  Q || cb())
              }
              , fb = function () {
                  clearInterval(H),
                  Q ? bb() : ab(),
                  i.removeClass("pauseState")
              }
              , gb = function () {
                  clearInterval(H),
                  i.addClass("pauseState")
              }
            ;
            if (v ? Q ? (w ? p-- : p++,
            bb(),
            z && l.hover(gb, fb)) : (ab(),
            z && d.hover(gb, fb)) : (Q && (w ? p-- : p++),
            i.addClass("pauseState")),
            i.click(function () {
                i.hasClass("pauseState") ? fb() : gb()
            }
            ),
            "mouseover" == c.trigger ? j.hover(function () {
                var a = j.index(this);
                I = setTimeout(function () {
                    p = a,
                    _(),
                    cb()
            }
                , c.triggerTime)
            }
            , function () {
                clearTimeout(I)
            }
            ) : j.click(function () {
                p = j.index(this),
                _(),
                cb()
            }
            ),
            Q) {
                if (g.mousedown(db),
                f.mousedown(eb),
                y) {
                    var hb, ib = function () {
                        hb = setTimeout(function () {
                            clearInterval(H),
                            bb(0 ^ r / 10)
                        }
                        , 150)
                    }
                    , jb = function () {
                        clearTimeout(hb),
                        clearInterval(H),
                        bb()
                    }
                    ;
                    g.mousedown(ib),
                    g.mouseup(jb),
                    f.mousedown(ib),
                    f.mouseup(jb)
                }
                "mouseover" == c.trigger && (g.hover(db, function () { }
                ),
                f.hover(eb, function () { }
                ))
            } else
                g.click(db),
                f.click(eb)
        }
        )
    }
}
)(jQuery),
jQuery.easing.jswing = jQuery.easing.swing,
jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function (a, b, c, d, e) {
        return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
    },
    easeInQuad: function (a, b, c, d, e) {
        return d * (b /= e) * b + c
    },
    easeOutQuad: function (a, b, c, d, e) {
        return -d * (b /= e) * (b - 2) + c
    },
    easeInOutQuad: function (a, b, c, d, e) {
        return 1 > (b /= e / 2) ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
    },
    easeInCubic: function (a, b, c, d, e) {
        return d * (b /= e) * b * b + c
    },
    easeOutCubic: function (a, b, c, d, e) {
        return d * ((b = b / e - 1) * b * b + 1) + c
    },
    easeInOutCubic: function (a, b, c, d, e) {
        return 1 > (b /= e / 2) ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
    },
    easeInQuart: function (a, b, c, d, e) {
        return d * (b /= e) * b * b * b + c
    },
    easeOutQuart: function (a, b, c, d, e) {
        return -d * ((b = b / e - 1) * b * b * b - 1) + c
    },
    easeInOutQuart: function (a, b, c, d, e) {
        return 1 > (b /= e / 2) ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
    },
    easeInQuint: function (a, b, c, d, e) {
        return d * (b /= e) * b * b * b * b + c
    },
    easeOutQuint: function (a, b, c, d, e) {
        return d * ((b = b / e - 1) * b * b * b * b + 1) + c
    },
    easeInOutQuint: function (a, b, c, d, e) {
        return 1 > (b /= e / 2) ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
    },
    easeInSine: function (a, b, c, d, e) {
        return -d * Math.cos(b / e * (Math.PI / 2)) + d + c
    },
    easeOutSine: function (a, b, c, d, e) {
        return d * Math.sin(b / e * (Math.PI / 2)) + c
    },
    easeInOutSine: function (a, b, c, d, e) {
        return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
    },
    easeInExpo: function (a, b, c, d, e) {
        return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
    },
    easeOutExpo: function (a, b, c, d, e) {
        return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c
    },
    easeInOutExpo: function (a, b, c, d, e) {
        return 0 == b ? c : b == e ? c + d : 1 > (b /= e / 2) ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c
    },
    easeInCirc: function (a, b, c, d, e) {
        return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
    },
    easeOutCirc: function (a, b, c, d, e) {
        return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
    },
    easeInOutCirc: function (a, b, c, d, e) {
        return 1 > (b /= e / 2) ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
    },
    easeInElastic: function (a, b, c, d, e) {
        var f = 1.70158
          , g = 0
          , h = d;
        if (0 == b)
            return c;
        if (1 == (b /= e))
            return c + d;
        if (g || (g = .3 * e),
        Math.abs(d) > h) {
            h = d;
            var f = g / 4
        } else
            var f = g / (2 * Math.PI) * Math.asin(d / h);
        return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g)) + c
    },
    easeOutElastic: function (a, b, c, d, e) {
        var f = 1.70158
          , g = 0
          , h = d;
        if (0 == b)
            return c;
        if (1 == (b /= e))
            return c + d;
        if (g || (g = .3 * e),
        Math.abs(d) > h) {
            h = d;
            var f = g / 4
        } else
            var f = g / (2 * Math.PI) * Math.asin(d / h);
        return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
    },
    easeInOutElastic: function (a, b, c, d, e) {
        var f = 1.70158
          , g = 0
          , h = d;
        if (0 == b)
            return c;
        if (2 == (b /= e / 2))
            return c + d;
        if (g || (g = e * .3 * 1.5),
        Math.abs(d) > h) {
            h = d;
            var f = g / 4
        } else
            var f = g / (2 * Math.PI) * Math.asin(d / h);
        return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + c : .5 * h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
    },
    easeInBack: function (a, b, c, d, e, f) {
        return void 0 == f && (f = 1.70158),
        d * (b /= e) * b * ((f + 1) * b - f) + c
    },
    easeOutBack: function (a, b, c, d, e, f) {
        return void 0 == f && (f = 1.70158),
        d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
    },
    easeInOutBack: function (a, b, c, d, e, f) {
        return void 0 == f && (f = 1.70158),
        1 > (b /= e / 2) ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
    },
    easeInBounce: function (a, b, c, d, e) {
        return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
    },
    easeOutBounce: function (a, b, c, d, e) {
        return 1 / 2.75 > (b /= e) ? d * 7.5625 * b * b + c : 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
    },
    easeInOutBounce: function (a, b, c, d, e) {
        return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
    }
});